package main

import "fmt"

func main() {
	var str = "abc"
	var num = 12
	var g = &num
	fmt.Printf("%s\n", str) // abc
	fmt.Printf("%d\n", num) // 12
	fmt.Printf("%b\n", num) // 1100
	fmt.Printf("%p\n", g)   // 0xc000102058

	// 通用占位符
	fmt.Printf("%%%d\n", num) // %12
	fmt.Printf("%#v\n", str)  // "abc"

	// 整数=>字符
	fmt.Printf("%q\n", 65) // 'A'

	// 浮点数和复数
	pai := 3.1415926535
	fmt.Printf("%b\n", pai) // 7074237751826244p-51

	// 宽度（默认宽度 默认精度）
	fmt.Printf("%f\n", pai) // 3.141593
	// 宽度（默认宽度 精度2）
	fmt.Printf("%.2f\n", pai) // 3.14
	// 宽度（宽度7 精度3）
	fmt.Printf("%7.3f\n", pai) //   3.142

	// 字符串
	fmt.Printf("%q\n", "ABC")        // "ABC"
	fmt.Printf("%5.3s\n", "ABCDEFG") //   ABC
	fmt.Printf("%7.7s\n", "ABCDEFG") // ABCDEFG

	// 获取输入
	var s string
	// 1) Scan()
	fmt.Print("请输入：")
	fmt.Scan(&s)
	fmt.Printf("输入的是: %v\n", s)

	// 2) fmt.Scanf() 3) fmt.Scanln()
	var (
		name    string
		age     int
		address string
	)
	fmt.Print("请输入：")
	// fmt.Scanf("%s %d %s\n", &name, &age, &address)
	fmt.Scanln(&name, &age, &address)
	fmt.Println("输入的是:", name, age, address)
}
